<?php
/**
 * Created by PhpStorm.
 * User: DELL-PC
 * Date: 2018/8/11
 * Time: 11:50
 */

namespace J\Schema\Collection\Element;


interface IHelper
{
    /**
     * 绑定PDO
     * @return int
     */
    public function bind();

    /**
     * 修正输入值类型，错误返回false
     *
     * @param mixed $value 输入值
     * @param string $op
     * @return mixed
     */
    public function adaptValue(&$value, $op = null);

    /**
     * 可用的计算符
     * @return array
     */
    public function getCalculators();

    /**
     * 有效的计算符
     *
     * @param string $operator
     * @return boolean
     */
    public function isCalculator($operator);

    /**
     * 有效的比较符
     *
     * @param string $operator
     * @return boolean
     */
    public function isCompare($operator);

    /**
     * 可用的比较符
     * @return array
     */
    public function getCompares();

    /**
     * 组计算符
     * @param string $op
     * @return boolean
     */
    public function isArrayCalculator($op);

    /**
     * 组比较符
     * @param string $op
     * @return boolean
     */
    public function isArrayCompare($op);

    /**
     * 空计算符
     * @param string $op
     * @return boolean
     */
    public function isEmptyCalculator($op);

    /**
     * 空比较符
     * @param string $op
     * @return boolean
     */
    public function isEmptyCompare($op);

    /**
     * 显示变换
     *
     * @param $value
     * @return mixed
     */
    public function display(&$value);

    /**
     * 默认值
     * @return mixed
     */
    public function getDefaultValue();

    /**
     * 默认表单域
     * @return mixed
     */
    public function getFieldType();
}